GJS complains when a NaN is passed in place of an integer, and
parseInt returns that from non numeric string. Pass a sentinel
that cancels the operation in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=642978
this.connect('action-invoked', Lang.bind(this, function(self, action) {
if (action == 'ok') {
- if (this._numeric)
- this._applet.agent_reply_passkey(this._devicePath, parseInt(this._entry.text));
- else
+ if (this._numeric) {
+ let num = parseInt(this._entry.text);
+ if (isNaN(num)) {
+ // user reply was empty, or was invalid
+ // cancel the operation
+ num = -1;
+ }
+ this._applet.agent_reply_passkey(this._devicePath, num);
+ } else
this._applet.agent_reply_pincode(this._devicePath, this._entry.text);
} else {
if (this._numeric)